package com.example.dbcms.mapper;
import com.example.dbcms.domain.ParkingFeeInfo;
import org.apache.ibatis.annotations.Param;


import java.util.List;

public interface ParkingFeeInfoDao {


    /**
     * 查询所有停车费用信息
     * @return
     */
    List<ParkingFeeInfo> selectAllParkingFeeInfo(ParkingFeeInfo parkingFeeInfo);

    /**
     * 查询所有停车位费用根据parkingId
     * @param ids
     * @return
     */
    List<ParkingFeeInfo> selectAllParkingFeeByParkingId(@Param(("ids")) List<Integer> ids, @Param("parkingFeeInfo") ParkingFeeInfo parkingFeeInfo);

    /**
     * 新增停车费用记录
     * @param parkingFeeInfo
     * @return
     */
    int addParkingFee(ParkingFeeInfo parkingFeeInfo);
    /**
     * 通过id得到停车费用信息
     * @param id
     * @return
     */
    ParkingFeeInfo getParkingFee(int id);

    /**
     * 通过id得到停车费用信息
     * @param parkingId
     * @param year
     * @param month
     * @return
     */
    ParkingFeeInfo getParkingFeeByYearAndMonth(int parkingId,int year,int month);

    /**
     * 得到最大id
     * @return
     */
    int getMaxId();

    /**
     * 更新停车费用记录
     * @param parkingFeeInfo
     * @return
     */
    int editParkingFee(ParkingFeeInfo parkingFeeInfo);

    /**
     * 普通用户缴费
     * @param parkingFeeInfo
     * @return
     */
    int updateParkingFee(ParkingFeeInfo parkingFeeInfo);

    /**
     * 通过id删除记录
     * @param id
     * @return
     */
    int deleteParkingFee(int id);

    /**
     * 删除多条记录
     * @param ids
     * @return
     */
    int deleteMultipleParkingFee(List<Integer> ids);

    /**
     * 得到所有停车费用
     * @param  ids 通过parkingid列表查找费用记录
     * @return
     */
    List<ParkingFeeInfo> getAllParkingFee(List<Integer> ids);

    /**
     * 查询在某一时间段下的停车费用费用综合
     * @return
     */
    List<ParkingFeeInfo> getAllParkingFeeByDate(@Param("year") int year,@Param("month") int month,@Param("ids") List<Integer> ids);

    /**
     * 查询所有未缴费的记录
     * 根据parkingId
     * @param parkingId
     * @return
     */
    List<Integer> getParkingNotFeed(int parkingId);


}
